type wire_reg =
  | Wire
  | Reg

type decl =
  | Decl_wire_reg of (string * (wire_reg * (int * int))) list
  | Decl_assign of (Vlog.expr * Vlog.expr)

type toplevel = {
  mod_name : string;
  mod_ports : (string * (Vlog.port_direction * (int * int))) list;
  mod_decls : decl list;
}
